A variety of innovations have been made regarding data transfer. For example, JP-H04-004452-A teaches a method that monitors the number of device bus accesses by measuring the number of data transfers of the data transfer device that is connected to a shared bus, and prohibits the data transfer device to occupy the bus within a predetermined cycle.
JP-H10-334039-A relates to PCI (Peripheral Component Interconnect). The method disclosed disconnects by the host performing a data transfer to a target connected via a shared bus and measures the target data buffer size. After measuring the data buffer size, the method suppresses disconnection by performing a data transfer length in a range that is smaller than the buffer size to prevent a drop in system throughput.
JP-2000-330929-A also relates to PCI. The method disclosed controls the number of disconnects in an initiator; when the disconnection count reaches a prescribed value, the buffer size between the devices is subtracted to prevent a drop in system throughput.
Incidentally, in order to send and receive frames between an SAS (Serial Attached SCSI) initiator and target, in particular, a connection must be established by an OPEN sequence. A maximum data length (specifically, a maximum burst size) is prescribed between both devices that is allowed in the sending of data with one connection; when the transfer data length reaches the maximum burst size, data transmission is terminated and the connection is closed by the CLOSE sequence.
For example, in cases performing large read transfers from a target device, if the maximum burst size is large, the bus occupancy rate of the target device will also be large, and commands of initiator device may be inhibited. Also, if the maximum burst size is small, the OPEN and CLOSE sequences will occur more frequently thereby increasing the time period required to complete the data sending.
It is preferred that an optimum value is set according to each circumstance because, depending on the circumstances, a transfer using the amount of the maximum burst size can cause a performance decrease.
However, the maximum burst size is actually issued by command from the initiator device, so it is difficult to frequently write data. For that reason, performance suffers because of the problem described above.